home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1994 / 6 / 01 / mini-compiler / mini.ampk / Mini-Compiler / Demo / ScrollMe.m < prev    next >
Encoding:
Text File  |  1995-06-01  |  2.2 KB  |  93 lines

  1. Program Test;
  2. { Dieses Programm demonstriert die Verwendung eigener Assemblerroutinen
  3.   innerhalb von MINI-Comp. Die Assembler-Routinen liegen in SCROLL.ASM
  4.   vor. Der Linker linkt die Routinen automatisch ein, indem er davon
  5.   ausgeht, daß das Objectfile unter dem Namen der ersten als EXTERNAL
  6.   definierten Procedure /Function im gleichen Pfad wie das gerade
  7.   übersetzte Programm steht.
  8.   Die Assemblerroutinen sind kurz gehalten und nehmen keine Rücksicht
  9.   auf das Aussehen. So müßte eigentlich immer auf den VBEAM gewartet
  10.   werden und die Breite eines Zeichens in Pixeln müßte auch über Text-
  11.   Length (GFX) bestimmt werden
  12. }
  13.  
  14. Var Big,Color,Mode,CLI  : Boolean;
  15.     Win             : Integer;
  16.     c               : Char;
  17.     ScrText,s       : String;
  18.  
  19. Procedure Menu;
  20. Begin
  21.  c:='5';
  22.  Repeat
  23.   Writeln;
  24.   Writeln(' 1 = Farbe ändern ');
  25.   Writeln(' 2 = Text ändern ');
  26.   Writeln(' 3 = Mode ändern ');
  27.   Writeln(' 4 = Font ändern ');
  28.   Writeln(' 5 = Ende ');
  29.   Writeln;
  30.   Write(' Wahl :');
  31.   c:=ReadKey;
  32.   If CLI
  33.      then Readln(s);
  34.  Until (c>='1') and (c<'6')
  35. End;
  36.  
  37. Procedure Scroll(Txt : String);
  38. External;
  39.  
  40. Function OpenWindow : Integer;
  41. External;
  42.  
  43. Procedure SetColor(Var Col : Boolean);
  44. External;
  45.  
  46. Procedure CloseWindow(Win : Integer);
  47. External;
  48.  
  49. Procedure SetMode(Var Mode : Boolean);
  50. External;
  51.  
  52. Procedure SetFont(var Font : Boolean);
  53. External;
  54.  
  55. Procedure GetText;
  56. Begin
  57.  Write('Scrolltext (80 Zeichen):');
  58.  Readln(ScrText)
  59. End;
  60.  
  61. Begin
  62.  If FromWb
  63.     then Begin
  64.           CLI:=False
  65.          End
  66.     else CLI:=True;
  67.  Color:=False;
  68.  Big:=False;
  69.  Mode:=False;
  70.  ScrText:='Dies ist eine Demo für externe Routinen in Mini-Comp . Die'+
  71.           ' Scrollroutine ist extern in SCROLL.ASM abgelegt ';
  72.  Writeln('ScrollMe wurde erstellt mit MiniComp 0.9');
  73.  Writeln('(C) Markus Rathmann');
  74.  Win:=OpenWindow;
  75.  SetMode(Mode);
  76.  SetColor(Color);
  77.  Scroll(ScrText);
  78.  Repeat
  79.   Menu;
  80.   Case c Of
  81.    '1' : SetColor(Color);
  82.    '2' : GetText;
  83.    '3' : SetMode(Mode);
  84.    '4' : SetFont(Big);
  85.    else ScrText:='Das war die kurze Demo für die externe Routinen. Ich hoff'+
  86.                  'e es hat alles geklappt. Shutting down 5  4  3  2  1 '+
  87.                  '... Bye        ';
  88.   End;
  89.   Scroll(ScrText);
  90.  Until c='5';
  91.  CloseWindow(Win)
  92. End.
  93.